package edu.bit.water.controller;

import edu.bit.water.dao.LoginDao;
import edu.bit.water.dao.UserDao;
import edu.bit.water.entity.LoginEntity;
import edu.bit.water.entity.UserEntity;
import edu.bit.water.web.dto.CarryDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/login_control")
public class LoginController extends BaseController{
	@Autowired
	LoginDao loginDao;
	 /**
     * @return 返回Map 如果查询出错，status为failed,msg为报错信息
     * 如果查询正确，status为success,如果只有一条数据,返回<result,object>,多条数据返回<results,object>
     */
    @RequestMapping(value = "/select", method = RequestMethod.GET)
    @ResponseBody
    private Map<String, Object> select() {
        Map<String, Object> modelMap = new HashMap<>();
        List<Map<String, Object>> entityLoginlist = loginDao.selectEntityLogin();
        modelMap.put("rows", entityLoginlist);
        return modelMap;
    }

    @ResponseBody
    @RequestMapping("/query_logininfo_by_time")
    public Map<String, Object> queryWarningRecord(@RequestParam(name = "startTime") String startTime,
                                                  @RequestParam(name = "endTime") String endTime
    ) {
        Map<String, Object> modelMap = new HashMap<>();
        List<Map<String, Object>> entityLoginlist = loginDao.selectEntityLoginByDate(startTime, endTime);
        modelMap.put("rows", entityLoginlist);
        return modelMap;
    }

    @ResponseBody
    @RequestMapping("/query_permission")
    public Map<String, Object> queryPermission(@RequestParam(name = "module") String module,
                                               @RequestParam(name = "function_") String function_) {
        Map<String, Object> result = new HashMap<>();
        UserEntity user = (UserEntity) session.getAttribute("user");
        String role = user.getRole();
        int num = loginDao.selectPermission(role, module, function_);
        result.put("result", num);
        return result;
    }

    @ResponseBody
    @RequestMapping("/query_role")
    public Map<String, Object> queryRole() {
        Map<String, Object> result = new HashMap<>();
        UserEntity user = (UserEntity) session.getAttribute("user");
        result.put("result", user.getRole());
        result.put("companyId", user.getCompanyId());
        String companyName = loginDao.getCompanyNameById(""+user.getCompanyId());
        result.put("companyName", companyName);
        return result;
    }
//    @RequestMapping("/insert")
//    @ResponseBody
//    public Map<String, Object> insert(@RequestBody List<Object> list) {
//
//    	Map<String, Object> insertMap = new HashMap<>();
//		Map<String, Object> modelMap = new HashMap<>();
//		//固定字段
//		String strSum = "USERNAME,PASSWORD,ROLE,WORKSHOP";
//		insertMap.put("lineColumn", strSum);
//		insertMap.put("lineList", list);
//		try {
//			userDao.insertEntityUser(insertMap);
//			modelMap.put("status", "success");
//		}catch (DuplicateKeyException e){
//
//        	}
//
//		return modelMap;
//    }
//
//
//    @RequestMapping("/delete")
//    @ResponseBody
//    public Map<String, Object> delete(@RequestBody List<Integer> listId) {
//        Map<String, Object> modelMap = new HashMap<>();
//        modelMap.put("status", "success");
//        int flag=-1;
//        try {
//			//使用增强for循环进行删除
//			for(int id : listId) {
//				userDao.deleteEntityUser(id);
//			}
//			flag=1;
//		} catch (Exception e) {
//			e.printStackTrace();
//			flag=0;
//		}
//        if (flag == 1) {
//            modelMap.put("status", "success");
//        } else {
//            modelMap.put("status", "failed");
//        }
//        return modelMap;
//    }
//
//    @RequestMapping("/update")
//    @ResponseBody
//    public Map<String, Object> update(@RequestBody List<Object> list) {
//        int id = (int) list.remove(0);
//        List<String> lineColumn=new ArrayList<String>();
//        lineColumn.add("USERNAME");
//        lineColumn.add("PASSWORD");
//        lineColumn.add("ROLE");
//        lineColumn.add("WORKSHOP");
//
//        Map<String, Object> modelMap = new HashMap<>();
//		int length = lineColumn.size();
//		//可變字段在固定字段中間
//		String strSum = "USERNAME=" + "'" + list.remove(0) + "'," +
//				"PASSWORD=" + "'" + list.remove(0) + "'," +
//				"ROLE=" + "'" + list.remove(0) + "'," +
//				"WORKSHOP=" + "'" + list.remove(0) + "'" ;
//		Map<String, Object> sqlMap = new HashMap<>();
//		sqlMap.put("id", id);
//		sqlMap.put("sql", strSum);
//		try {
//			userDao.updateEntityUser(sqlMap);
//			modelMap.put("status", "success");
//		}catch (DuplicateKeyException e){
//        }
//		return modelMap;
//    }

	
}
